home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
Crossword
/
Source
/
StopWatch.m
< prev
next >
Wrap
Text File
|
1995-06-12
|
892b
|
58 lines
/*
File StopWatch.m
A stopwatch can be stopped, started, and reset.
*/
#import "StopWatch.h"
#import <sys/resource.h>
/* ———————————————————————————————————————————————————————————————————————————— */
@implementation StopWatch
- (float) getTime { return time; }
/* ———————————————————————————————————————————————————————————————————————————— */
- reset
{
time = 0.0;
return self;
}
- start
{
struct rusage rusage;
getrusage(RUSAGE_SELF, &rusage);
beganAt = rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec;
beganAt += .000001 * (rusage.ru_utime.tv_usec + rusage.ru_stime.tv_usec);
return self;
}
- stop
{
struct rusage rusage;
float endAt;
getrusage(RUSAGE_SELF, &rusage);
endAt = rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec;
endAt += .000001 * (rusage.ru_utime.tv_usec + rusage.ru_stime.tv_usec);
time += endAt - beganAt;
return self;
}
@end